using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("ElectroScript")]
	public class ElectroScript : MonoBehaviour
	{
		[Attribute38("ElectroScript.Prefabs")]
		public class Prefabs : MonoClass
		{
			public Transform sparks => method_3<Transform>("sparks");

			public Transform source => method_3<Transform>("source");

			public Transform destination => method_3<Transform>("destination");

			public Transform target => method_3<Transform>("target");

			public Prefabs(IntPtr address, string className)
				: base(address, className)
			{
			}

			public Prefabs(IntPtr address)
				: this(address, "Prefabs")
			{
			}
		}

		[Attribute38("ElectroScript.Timers")]
		public class Timers : MonoClass
		{
			public float timeToUpdate => method_2<float>("timeToUpdate");

			public float timeToPowerUp => method_2<float>("timeToPowerUp");

			public float branchLife => method_2<float>("branchLife");

			public Timers(IntPtr address, string className)
				: base(address, className)
			{
			}

			public Timers(IntPtr address)
				: this(address, "Timers")
			{
			}
		}

		[Attribute38("ElectroScript.Dynamics")]
		public class Dynamics : MonoClass
		{
			public float chanceToArc => method_2<float>("chanceToArc");

			public Dynamics(IntPtr address, string className)
				: base(address, className)
			{
			}

			public Dynamics(IntPtr address)
				: this(address, "Dynamics")
			{
			}
		}

		[Attribute38("ElectroScript.LineSettings")]
		public class LineSettings : MonoClass
		{
			public float keyVertexDist => method_2<float>("keyVertexDist");

			public float keyVertexRange => method_2<float>("keyVertexRange");

			public int numInterpoles => method_2<int>("numInterpoles");

			public float minBranchLength => method_2<float>("minBranchLength");

			public float maxBranchLength => method_2<float>("maxBranchLength");

			public LineSettings(IntPtr address, string className)
				: base(address, className)
			{
			}

			public LineSettings(IntPtr address)
				: this(address, "LineSettings")
			{
			}
		}

		[Attribute38("ElectroScript.TextureSettings")]
		public class TextureSettings : MonoClass
		{
			public float scaleX => method_2<float>("scaleX");

			public float scaleY => method_2<float>("scaleY");

			public float animateSpeed => method_2<float>("animateSpeed");

			public float offsetY => method_2<float>("offsetY");

			public TextureSettings(IntPtr address, string className)
				: base(address, className)
			{
			}

			public TextureSettings(IntPtr address)
				: this(address, "TextureSettings")
			{
			}
		}

		public Prefabs prefabs => method_3<Prefabs>("prefabs");

		public Timers timers => method_3<Timers>("timers");

		public Dynamics dynamics => method_3<Dynamics>("dynamics");

		public LineSettings lines => method_3<LineSettings>("lines");

		public TextureSettings tex => method_3<TextureSettings>("tex");

		public int numVertices => method_2<int>("numVertices");

		public Vector3 deltaV1 => method_2<Vector3>("deltaV1");

		public Vector3 deltaV2 => method_2<Vector3>("deltaV2");

		public float srcTrgDist => method_2<float>("srcTrgDist");

		public float srcDstDist => method_2<float>("srcDstDist");

		public float lastUpdate => method_2<float>("lastUpdate");

		public ElectroScript(IntPtr address, string className)
			: base(address, className)
		{
		}

		public ElectroScript(IntPtr address)
			: this(address, "ElectroScript")
		{
		}

		public void Start()
		{
			method_8("Start");
		}

		public void Update()
		{
			method_8("Update");
		}

		public void DrawArc()
		{
			method_8("DrawArc");
		}

		public void AnimateArc()
		{
			method_8("AnimateArc");
		}

		public void RayCast()
		{
			method_8("RayCast");
		}
	}
}
